////////////////////////////////////////////////
//	File	:	"CSGD_ObjectManager.h"
//
//	Author	:	David Brown (DB)
//
//	Purpose	:	To contain and manage all of our game objects.
/////////////////////////////////////////////////
#pragma once
#include <vector>
using std::vector;

#include "IBaseInterface.h"

class CSGD_ObjectManager
{
private:
	vector<IBaseInterface*> m_vObjectList;
	CSGD_ObjectManager();
	~CSGD_ObjectManager();
	CSGD_ObjectManager(const CSGD_ObjectManager &object);
	CSGD_ObjectManager & operator=(CSGD_ObjectManager &object);
	
	static CSGD_ObjectManager *m_pInstance;
public:

	static CSGD_ObjectManager *GetInstance();
	void DeleteInstance();

	void UpdateObjects(float _fElapsedTime);
	void RenderObjects(void);

	void CheckCollisions();
	
	void AddObject(IBaseInterface* pObject);
	void RemoveObject(IBaseInterface* pObject);

	void RemoveAllObjects(void);
};